Virtual environments are typically employed in electronic games that are played on game consoles, personal computers, and other types of computing devices, as well as in other types of applications. A user usually interacts with objects in a virtual environment by manipulating a mouse, joystick, wheel, game pad, track ball, or other user input device that causes the virtual object to move in a specific manner or carry out some other action or function as defined by the software program that produces the virtual environment. The effects of a user interaction with an object in the virtual environment are generally visible on a display. For example, a user might be controlling a virtual object such as a spaceship or race car that is displayed in the virtual environment, so that the virtual object carries out some task. If the virtual object being controlled by the user strikes another virtual object, it may be “destroyed,” as shown by graphic images indicating the destruction on the display. In certain games, the game console or computer may control other virtual objects in the environment, either in support of the user's task, or to oppose its completion. Thus, the interaction between virtual objects in a virtual environment is well known.
Another form of user input employs displays that are responsive to the touch of a user's finger or a stylus. Touch responsive displays can be pressure activated, responsive to electrical capacitance, changes in magnetic field intensity, employ surface acoustic waves, or respond to other variables that indicate the location of a finger or stylus on the display. Another type of touch sensitive display includes a plurality of optical sensors spaced-apart around the periphery of the display screen so that the location of a finger or stylus touching the screen can be detected. Using one of these touch sensitive displays, a user can more directly control a virtual object that is displayed. For example, the user may touch the displayed virtual object to select it and then drag the object to a new position on the touch-sensitive display.
However, in most such touch-sensitive displays, the response is only to the touch of the finger or stylus at a point. There is another type of interaction with a virtual environment that might provide a much richer experience for the user. While virtual environments, such as games, often include virtual objects that are displayed on a screen, it would be desirable for the virtual environment to also respond to physical objects that are placed on the display surface. In most prior art touch-sensitive displays, the finger or stylus is not treated as a physical object that is actually within the virtual environment, but instead, is simply an alternative type of pointing device used to make selections or drag elements about on the screen. To be truly interactive to physical objects that are placed on it, a display surface should also be able to detect where a plurality of physical objects are placed on it, as well as detect different types of physical objects, each of which might provide a different interactive experience for the user. However, the capacitive, electro-magnetic, optical, or other types of sensors used in conventional touch-sensitive displays typically cannot simultaneously detect the location of more than one finger or object touching the display screen at a time, and thus, would be unable to detect the location or each different type of a plurality of different types of physical objects placed thereon. These prior art touch-sensing systems are generally incapable of detecting more than a point of contact and are unable to detect the shape of an object proximate to or touching the display surface. Even capacitive or resistive, or acoustic surface wave sensing display surfaces that can detect multiple points of contact are unable to image objects on a display surface to any reasonable degree of resolution. Prior art systems of these types cannot detect patterns on an object or detailed shapes that might be used to identify each object among a plurality of different objects that are placed on a display surface.
Another approach that has been developed in the prior art uses cameras mounted to the side and above a horizontal display screen to visually capture an image of a user's finger or other objects that are touching the display screen. This multiple camera mounting configuration is clearly not a compact system that most people would want to use in a residential setting. In addition, the accuracy of this type of multi-camera system in responding to an object that is on or proximate to the display surface depends upon the capability of the software used with the system to visually recognize objects and their location in three-dimensional space. Furthermore, the view of one object by one of the cameras may be blocked by an intervening object.
To address many of the problems inherent in the types of touch-sensitive displays discussed above, a user interface platform was developed in the MIT Media Lab, as reported by Brygg Ullmer and Hiroshi Ishii in “The metaDESK: Models and Prototypes for Tangible User Interfaces,” Proceedings of UIST 10/1997:14-17. The metaDESK includes a near-horizontal graphical surface used to display two-dimensional geographical information. Above the graphical surface is disposed an arm-mounted flat-panel display that serves as an “active lens” for use in displaying three dimensional geographical information. A computer vision system inside the desk unit (i.e., below the graphical surface) includes infrared (IR) lamps, an IR camera, a video camera, a video projector, and mirrors. The mirrors reflect the graphical image projected by the projector onto the underside of the graphical display surface. The IR camera can detect a distinctive pattern provided on the undersurface of passive objects called “phicons” that are placed on the graphical surface. Magnetic-field position sensors and electrical-contact sensors are also included in the metaDESK. For example, in response to the IR camera detecting the IR pattern (which is transparent to visible light) applied to the bottom of a “Great Dome phicon,” a map of the MIT campus is displayed on the graphical surface, with the actual location of the Great Dome in the map positioned where the Great Dome phicon is located. Moving the Great Dome phicon over the graphical surface manipulates the displayed map by rotating or translating the map in correspondence to the movement of the phicon by a user. This paper notes that all of the objects or phicons used with the graphical display surface are passive, so that the display system simply responds to a phicon by producing a specific graphic image, but the phicon does not itself respond to the virtual environment.
A similar approach to sensing objects on a display surface is disclosed in several papers published by Jun Rekimoto of Sony Computer Science Laboratory, Inc. in collaboration with others. These papers briefly describe a “HoloWall” and a “HoloTable,” both of which use IR light to detect objects that are proximate to or in contact with a display surface on which a rear-projected image is visible. The rear-projection panel, which is vertical in the HoloWall and horizontal in the HoloTable, is semi-opaque and diffusive, so that objects become more clearly visible as they approach and then contact the panel. The objects thus detected can be a user's fingers or hands, or other objects. However, there is no discussion of active objects being placed on the surface of the display panel to carry out some active function involving an interaction with a virtual environment displayed on the screen.
It would be desirable to enable interaction within the virtual environment between physical objects that are placed on a display surface and virtual objects within the virtual environment, and to enable certain types of physical objects to respond to the virtual environment being displayed in an active and perceivable manner. Ideally, the interaction should go well beyond the use of a physical object to simply select and move a virtual object on a touch-sensitive screen. Although some types of objects placed on a display surface will be passive and only capable of being moved about on the display surface by the user's hand, other types of physical objects should be active and capable of responding to the virtual environment in an interactive manner. For example, it would be preferable if a physical object that looks like some form of vehicle were capable of moving over the display surface without being picked up and replaced at a different position by the user. Thus, a physical object that includes a small electric motor drivingly coupled to drive wheels on the object might be caused by either the user or the computing device creating the virtual environment to move around on the display surface and interact with virtual objects that are displayed thereon. It would also be desirable to employ other types of active functions in different types of active objects to respond to the virtual environment being displayed.
The interaction between physical objects and virtual objects in a displayed virtual environment might take different forms. For example, it would be desirable to be able to position a physical object on the display surface, have the software program executing the virtual environment recognize the physical object and its location, and then respond to the presence of the physical object when moving virtual objects within the virtual environment. Also, the virtual environment might respond to changes that are caused by the user, in the position of the physical object in the virtual environment. Thus, if the user moves a physical object to change its position or orientation on the display surface, in response, the virtual environment software program might respond by changing some function, parameter, or feature related to the virtual environment, such as the volume of sound produced by the virtual environment software.
Sensing the changing area and location of contact of a physical object with the display surface should also preferably result in a corresponding interaction with the displayed virtual environment. For example, if the physical object changes shape with varying pressure, the movement by the user of the object over the display surface should produce a corresponding stroke in the display that represents the changing shape of the object that is in contact with the display surface. These and other forms of interaction between a physical object on the display surface and the graphic images and virtual environment that are displayed thereon can provide a much more enjoyable and realistic experience for the user.